Singularity support#97
Conversation
|
Thanks so much @sbdzdz ! just ack'ing that this is on my radar. I'm a bit busy at the moment, but will be sure to circle back here by mid May. |
|
Thanks @john-b-yang! When running this on a cluster with actual models I found a few more Singularity issues that might need fixing. I won't have time to look into it until next week earliest, so it's best to wait with merging, unless you can test and fix on your side. |
|
Thanks for flagging @sbdzdz. Agree we should hold off on merging PR until the cluster issues are narrowed down. For context, I validated the current head locally on my Mac with:
That said, this local harness clearly does not cover the cluster + actual-model workload you tested, so I don’t want to treat it as sufficient. If you can share rough symptoms, failing arena/config, or any log snippets when you have a chance, I can try to reproduce and patch from my side. Until then I’m aligned with waiting on merge. |
Singularity Support
Add Singularity support. All test pass, all arenas run with dummy agents, the Docker path remains almost unchanged. It would be great to test with some actual API calls.
Core changes
SingularityEnvironmentsupport toenvironment.py.pvp.py("file changed" warning can happen on weka with Singularity).README.mdto mention Singularity as an alternative to Docker.Arena-specific fixes
Singularity's
--cleanenvclears environment variables set during%post, breaking tools that rely on$HOME.RUSTUP_HOME=/root/.rustupandCARGO_HOME=/root/.cargoin%environment.GRADLE_USER_HOME=/root/.gradlein%environment.Singularity's
--containflag clears /tmp and /home after eachexecute()invocation.dwarf.redfrom /home to /opt (both in .def and .py).git configinstead of global (which writes to~/.gitconfig).SingularityEnvironment.execute()captures stderr and stdout together, polluting command output.git rev-parse HEADoutput.git diff tag1..tag2never produces a prelude).Singularity's background processes don't persist across
execute()calls.subprocess.Popento start player HTTP servers.Singularity sandbox directories can contain symlinks that don't resolve on the host.
symlinks=Truetoshutil.copytreeincopy_between_containers.Test fixes
/home/dwarf.redto/opt/dwarf.red.